all: OMP_TextoMaior OMP_TextoMenor MPI_TextoMaior MPI_TextoMenor SEQ_TextoMaior SEQ_TextoMenor

omp_textoMaior.o: TextoMaiorOpenMP.c
	gcc -c TextoMaiorOpenMP.c -fopenmp -o omp_textoMaior.o
omp_textoMenor.o: TextoMenorOpenMP.c
	gcc -c TextoMenorOpenMP.c -fopenmp -o omp_textoMenor.o
mpi_textoMaior.o: TextoMaiorMPI.c
	mpicc -c TextoMaiorMPI.c -o mpi_textoMaior.o
mpi_textoMenor.o: TextoMenorMPI.c
	mpicc -c TextoMenorMPI.c -o mpi_textoMenor.o 
seq_textoMenor.o: TextoMenorSequencial.c
	mpicc -c TextoMenorSequencial.c -o seq_textoMenor.o
seq_textoMaior.o: TextoMaiorSequencial.c
	mpicc -c TextoMaiorSequencial.c -o seq_textoMaior.o
util.o: util.c
	gcc -c util.c -fopenmp

OMP_TextoMaior: util.o omp_textoMaior.o
	gcc util.o omp_textoMaior.o -o OMP_TextoMaior -fopenmp
OMP_TextoMenor: util.o omp_textoMenor.o
	gcc util.o omp_textoMenor.o -o OMP_TextoMenor -fopenmp
MPI_TextoMaior: util.o mpi_textoMaior.o
	mpicc util.o mpi_textoMaior.o -o MPI_TextoMaior -fopenmp
MPI_TextoMenor: util.o mpi_textoMenor.o
	mpicc util.o mpi_textoMenor.o -o MPI_TextoMenor -fopenmp
SEQ_TextoMaior: util.o seq_textoMaior.o
	gcc util.o seq_textoMaior.o -o SEQ_TextoMaior -fopenmp
SEQ_TextoMenor: util.o seq_textoMenor.o
	gcc util.o seq_textoMenor.o -o SEQ_TextoMenor -fopenmp

clean:
	rm *.o -f
	rm OMP_* -f 
	rm MPI_* -f

run_OMP:
	./OMP_TextoMaior
	./OMP_TextoMenor
run_MPI:
	mpirun -np 4 MPI_TextoMaior
	mpirun -np 4 MPI_TextoMenor

run_OMP_TextoMaior:
	./OMP_TextoMaior
run_OMP_TextoMenor:
	./OMP_TextoMenor
run_MPI_TextoMaior:
	mpirun -np 4 MPI_TextoMaior
run_MPI_TextoMenor:
	mpirun -np 4 MPI_TextoMenor
run_SEQ_TextoMaior:
	./SEQ_TextoMaior
run_SEQ_TextoMenor:
	./SEQ_TextoMenor
